<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur a le droit d'édition
	if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 4 || $GLOBALS['USER']['admin'])){

		// l'identifiant de la donnée à supprimer est indiqué par un entier
		if(isset($_GET['id']) && numericInt($_GET['id'])){
		
			$nb_commandes = valueExists((int)$_GET['id'], "CODECOMMANDEEXTERNE", "commande_externe", $connexion);
			
			if($nb_commandes == 1){ // l'annexe à éditer existe et son identifiant est unique
	
?>
<?php
//------------------------------------------------------------ Valeur des champs avant saisie

	// récupération des informations de la commande
	$query_recuperation_commande = "SELECT c.DATECOMMANDE, c.CODESTRUCTURE, c.CONVENTIONSIGNEE, c.COMMENTAIRE, COUNT(s.CODESORTIE) ";
	$query_recuperation_commande .= "FROM commande_externe c ";
	$query_recuperation_commande .= "LEFT JOIN sortie s ON s.CODECOMMANDEEXTERNE = c.CODECOMMANDEEXTERNE ";
	$query_recuperation_commande .= "WHERE c.CODECOMMANDEEXTERNE = ".$_GET['id']." ";
	$query_recuperation_commande .= "GROUP BY c.CODECOMMANDEEXTERNE ";

	$result_recuperation_commande = mysql_query($query_recuperation_commande, $connexion) or logError("RECUPERATION COMMANDE EXTERNE-".$query_recuperation_commande."-".mysql_error());

	$tab_recuperation_commande = mysql_fetch_row($result_recuperation_commande);

	$time = strtotime($tab_recuperation_commande[0]);
	$dv_date_jour = date("j", $time); // valeur du champ jour de la date (edt_date_jour)
	$dv_date_mois = date("n", $time); // valeur du champ mois de la date (edt_date_mois)
	$dv_date_annee = date("Y", $time); // valeur du champ année de la date (edt_date_annee)
	$dv_structure = $tab_recuperation_commande[1]; // valeur du champ passée par (edt_structure)
	$dv_convention = (bool)$tab_recuperation_commande[2]; // valeur du champ convetion signée (edt_convention)
	$dv_commentaire = $tab_recuperation_commande[3]; // valeur du champ commentaire (edt_commentaire)
	
	if($tab_recuperation_commande[4] > 0){
		$envoyes = true; // Indique de des envois ont été effectués suite à cette commande
	}else{
		$envoyes = false; // Indique de des envois ont été effectués suite à cette commande
	}
	
	$dateOrigine = strtotime($tab_recuperation_commande[0]);
	
	mysql_free_result($result_recuperation_commande);
	
	// valeurs possibles du champ edt_structure
	$query_recuperation_structures = "SELECT CODESTRUCTURE AS id, NOMSTRUCTURE AS nom, CODEJB as numcor, NOMCOMMUNE as commune, NOMPAYS as pays FROM structure s ";
	$query_recuperation_structures .= "JOIN commune com JOIN pays ON com.CODEPAYS = pays.CODEPAYS AND com.CODECOMMUNE = s.CODECOMMUNE ";
	$query_recuperation_structures .= "ORDER BY pays,commune";
	$result_recuperation_structure =  mysql_query($query_recuperation_structures, $connexion) or logError("RECUPERATION STRUCTURES-".$query_recuperation_structures."-".mysql_error());

	$selectStructures = array(); // on créé un tableau qui contient la liste des strucutres ainsi que les informations de chacune
	$nb_structures = 0;
	while($tab_recuperation_structure = mysql_fetch_assoc($result_recuperation_structure)){
		$selectStructures[$nb_structures] = $tab_recuperation_structure;
		$nb_structures++;
	}
	
	mysql_free_result($result_recuperation_structure);
	
?>
<?php
//------------------------------------------------------------ Traitements si le formulaire a été envoyé

/********************************* Règles :

	- la date, le destinataire, la convention signée et la personne à l'origine de la commande, doivent être indiqués
	- la structure expéditrice doit exister dans la BDD

*****************************************/

	$statut = array(); // indique le statut du traitement du formulaire (echec ou succes) - tableau contenant les messages à afficher
	$erreur = false; // indique si une erreur a été rencontrée lors du traitement

	trimTabByKey($_POST, "edt_"); // appel à la fonction trimTabByKey() définie dans fonctions.php
	
	//---------------------------------- Contrôle des données ----------------------------------
	
	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
	
		// Contrôle des données de la date
		if(isset($_POST['edt_date_jour']) && is_string($_POST['edt_date_jour']) && isset($_POST['edt_date_mois']) && is_string($_POST['edt_date_mois']) && isset($_POST['edt_date_annee']) && is_string($_POST['edt_date_annee'])){
			if(numericInt($_POST['edt_date_jour']) && numericInt($_POST['edt_date_mois']) && !emptyString($_POST['edt_date_annee']) && numericInt($_POST['edt_date_annee'])){
				if(checkdate($_POST['edt_date_mois'], $_POST['edt_date_jour'], $_POST['edt_date_annee'])){
					if(strtotime($_POST['edt_date_annee']."-".$_POST['edt_date_mois']."-".$_POST['edt_date_jour']) <= time()){
						if($envoyes && strtotime($_POST['edt_date_annee']."-".$_POST['edt_date_mois']."-".$_POST['edt_date_jour']) != $dateOrigine){
							$statut[] = "La date de la requête ne peut être changée si des végétaux ont été envoyés";
							$erreur = true;
						}else{
							$dv_date_jour = $_POST['edt_date_jour'];
							$dv_date_mois = $_POST['edt_date_mois'];
							$dv_date_annee = $_POST['edt_date_annee'];
						}
					}else{
						$statut[] = "La date de la requête ne peut pas être future";
						$erreur = true;
					}
				}else{
					$statut[] = "Date de la requête incorrecte";
					$erreur = true;
				}
			}else{
				$statut[] = "Format de la date de la requête incorrect";
				$erreur = true;
			}
		}else{
			$statut[] = "Aucune date de la requête indiquée";
			$erreur = true;
		}
		
		// Contrôle des données de la structure expéditrice
		if(isset($_POST['edt_structure']) && is_string($_POST['edt_structure'])){
			if(!numericInt($_POST['edt_structure'])){
				$statut[] = "Format de la structure de destination incorrect";
				$erreur = true;
			}else{
				if(valueExists((int)$_POST['edt_structure'], "CODESTRUCTURE", "structure", $connexion) == 1){
					$dv_structure = $_POST['edt_structure'];
				}else{
					$statut[] = "La structure de destination indiquée n'existe pas";
					$erreur = true;
				}
			}
		}else{
			$statut[] = "Aucune structure de destination indiquée";
			$erreur = true;
		}
		
		// Contrôle des données de la convention signée
		if(isset($_POST['edt_convention']) && is_string($_POST['edt_convention'])){
			if($_POST['edt_convention'] != "oui" && $_POST['edt_convention'] != "non"){
				$statut[] = "Format de la signature de la convention incorrect";
				$erreur = true;
			}else{
				if($_POST['edt_convention'] == "oui"){
					$dv_convention = true;
				}else if($_POST['edt_convention'] == "non"){
					$dv_convention = false;
				}
			}
		}else{
			$statut[] = "La signature de la convention n'est pas indiquée";
			$erreur = true;
		}
		
		// Contrôle des données du commentaire
		if(isset($_POST['edt_commentaire']) && is_string($_POST['edt_commentaire'])){ 
			$dv_commentaire = $_POST['edt_commentaire'];
		}else{
			$statut[] = "Aucun commentaire indiqué";
			$erreur = true;
		}
		
		//---------------------------------- Modification de la commande ----------------------------------
	
		if(!$erreur){ // aucune erreur n'a été rencontrée jusqu'ici
			
			// Modification des informations de la table COMMANDE_EXTERNE
			$query_modification_commande = "UPDATE commande_externe ";
			$query_modification_commande .= "SET DATECOMMANDE = '".$_POST['edt_date_annee']."-".$_POST['edt_date_mois']."-".$_POST['edt_date_jour']."', CONVENTIONSIGNEE = ".mysqlBool($_POST['edt_convention'] == "oui").", COMMENTAIRE = ".mysqlString($_POST['edt_commentaire']).", CODESTRUCTURE = ".$_POST['edt_structure']." ";
			$query_modification_commande .= "WHERE CODECOMMANDEEXTERNE = ".$_GET['id']." ";
			
			$result_modification_commande = mysql_query($query_modification_commande, $connexion) or logError("MODIFICATION COMMANDE EXTERNE-".$query_modification_commande."-".mysql_error());
		
			if($result_modification_commande === true){
				$statut[] = "Les informations de la commande ont été modifiées";
				logAction("COMMANDE EXTERNE (id: ".$_GET['id'].") MODIFIEE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");	
			}else{
				$statut[] = "Erreur critique lors de la modification de la commande";
				$erreur = true;
			}
			
		}
		
	}
?>
<?php
//------------------------------------------------------------ Affichage du statut si le formulaire a été envoyé

	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
		
		if($erreur){
			afficherStatut($statut, 3); // appel à la fonction afficherStatut() définie dans fonctions.php
		}else{
			afficherStatut($statut, 1); // appel à la fonction afficherStatut() définie dans fonctions.php
		}
	
	}

?>
<?php
	boutonRetour("index.php?p=gestion/commandeexterne_gere"); // // appel à la fonction boutonRetour() définie dans fonctions.php
?>
<form method="post" action="index.php?p=gestion/commandeexterne_edite&amp;id=<?php echo $_GET['id']; ?>">
	<table class="formulaire" style="margin-left: auto; margin-right: auto;">
		<tr>
			<th class="titre" colspan="2">Modification des informations d'une requête</th>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">informations principales</th>
		</tr>
		<tr>
			<td style="width: 170px" class="etiquette">Date * :</td>
			<td style="width: 400px" class="champ">
				<?php
					if(!$envoyes){
				?>
						<select name="edt_date_jour">
				<?php
					}else{
				?>
						<input type="hidden" name="edt_date_jour" value="<?php echo $dv_date_jour; ?>" />
						<select name="edt_date_jour" disabled="disabled">
				<?php
					}
				?>
					<?php
						for($i=1; $i<=31; $i++){
							if($dv_date_jour == $i){
								echo "<option value=\"".$i."\" selected=\"selected\">".$i."</option>";
							}else{
								echo "<option value=\"".$i."\">".$i."</option>";
							}
						}
					?>
				</select>
				<?php
					if(!$envoyes){
				?>
						<select name="edt_date_mois">
				<?php
					}else{
				?>
						<input type="hidden" name="edt_date_mois" value="<?php echo $dv_date_mois; ?>" />
						<select name="edt_date_mois" disabled="disabled">
				<?php
					}
				?>
					<option value="1" <?php if($dv_date_mois == 1) echo "selected=\"selected\""; ?>>Janvier</option>
					<option value="2" <?php if($dv_date_mois == 2) echo "selected=\"selected\""; ?>>Février</option>
					<option value="3" <?php if($dv_date_mois == 3) echo "selected=\"selected\""; ?>>Mars</option>
					<option value="4" <?php if($dv_date_mois == 4) echo "selected=\"selected\""; ?>>Avril</option>
					<option value="5" <?php if($dv_date_mois == 5) echo "selected=\"selected\""; ?>>Mai</option>
					<option value="6" <?php if($dv_date_mois == 6) echo "selected=\"selected\""; ?>>Juin</option>
					<option value="7" <?php if($dv_date_mois == 7) echo "selected=\"selected\""; ?>>Juillet</option>
					<option value="8" <?php if($dv_date_mois == 8) echo "selected=\"selected\""; ?>>Aout</option>
					<option value="9" <?php if($dv_date_mois == 9) echo "selected=\"selected\""; ?>>Septembre</option>
					<option value="10" <?php if($dv_date_mois == 10) echo "selected=\"selected\""; ?>>Octobre</option>
					<option value="11" <?php if($dv_date_mois == 11) echo "selected=\"selected\""; ?>>Novembre</option>
					<option value="12" <?php if($dv_date_mois == 12) echo "selected=\"selected\""; ?>>Décembre</option>
				</select>
				<?php
					if(!$envoyes){
				?>
						<input type="text" name="edt_date_annee" size="4" value="<?php echo htmlentities($dv_date_annee, ENT_COMPAT, "UTF-8"); ?>" />
				<?php
					}else{
				?>
						<input type="text" name="edt_date_annee" size="4" value="<?php echo htmlentities($dv_date_annee, ENT_COMPAT, "UTF-8"); ?>" readonly="readonly" />
				<?php
					}
				?>
			</td>
		</tr>
		<tr>
			<td class="etiquette">Passée par * :</td>
			<td class="champ">
				<select name="edt_structure" style="width: 500px">
					<?php
						if($nb_structures > 0){
							foreach($selectStructures as $structure){
								if($structure['id'] == $dv_structure){
									echo "<option value=\"".$structure['id']."\" selected=\"selected\">(".$structure['numcor'].") ".htmlentities($structure['nom'], ENT_NOQUOTES, "UTF-8")." [".htmlentities(Capitalise($structure['commune']), ENT_NOQUOTES, "UTF-8")." - ".htmlentities(strtoupper($structure['pays']), ENT_NOQUOTES, "UTF-8")."]</option>";
								}else{
									echo "<option value=\"".$structure['id']."\">(".$structure['numcor'].") ".htmlentities($structure['nom'], ENT_NOQUOTES, "UTF-8")." [".htmlentities(Capitalise($structure['commune']), ENT_NOQUOTES, "UTF-8")." - ".htmlentities(strtoupper($structure['pays']), ENT_NOQUOTES, "UTF-8")."]</option>";
								}
							}
							unset($structure);
						}else{
							echo "<option disabled=\"disabled\">Aucune structure enregistrée</option>";
						}
					?>
				</select>
			</td>
		</tr>
		<tr>
			<td class="etiquette">Convention signée * :</td>
			<td class="champ"><input type="radio" name="edt_convention" value="oui" <?php if($dv_convention) echo "checked=\"checked\""; ?> /><label>Oui</label> <input type="radio" name="edt_convention" value="non" <?php if(!$dv_convention) echo "checked=\"checked\""; ?> /><label>Non</label></td>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">informations complémentaires</th>
		</tr>
		<tr>
			<td class="etiquette">Commentaire :</td>
			<td class="champ"><textarea name="edt_commentaire" rows="2" cols="25"><?php echo htmlentities($dv_commentaire, ENT_COMPAT, "UTF-8"); ?></textarea></td>
		</tr>
		<tr>
			<td class="envoi" colspan="2"><input type="submit" value="Modifier" /><input type="hidden" name="form_sent" value="1" /></td>
		</tr>
		<tr>
			<td class="legende" colspan="2">* = champs obligatoires</td>
		</tr>
	</table>
</form>
<div class="information">
	<div class="titre">Informations</div>
	<h4>Passée par :</h4>
	<p>Indiquez la structure qui a envoyé cette requête avec le champ <b>Passée par</b>.</p>
	<h4>Champs vérouillés :</h4>
	<p>Si des envois ont été effectués pour cette requête, vous ne pouvez pas changer la date de celle-ci.</p>
</div>
<?php
//------------------------------------------------------------ Accès refusé à la page

			}else{
				afficherStatut("La requête à éditer n'existe pas", 3); // appel à la fonction afficherStatut() définie dans fonctions.php
			}

		}else{
			afficherStatut("La requête à éditer n'est pas ou mal indiquée", 3); // appel à la fonction afficherStatut() définie dans fonctions.php
		}

	}else{
		if(isset($_SESSION)){
			if(!isset($_SESSION['user_id'])){ // si l'utilisateur n'est pas connecté
				include("pages/connexion.php");
			}else{ // si l'utilisateur est connecté et qu'il n'a pas accès à la page, c'est qu'il n'a pas le droit d'utilisation nécessaire
				include("pages/401.htm");
			}
		}
	}

?>